package com.ywu.tenant.standard.data;

import com.ywu.tenant.standard.dto.TenantDto;
import com.ywu.tenant.standard.dto.TenantUserDTO;
import com.ywu.tenant.standard.entity.TenantEntity;
import com.ywu.tenant.standard.entity.TenantUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TenantRepository {
    List<TenantEntity> queryTenantInfo(@Param("model") TenantDto serviceDto);

    void addTenantInfo(@Param("model") TenantEntity serviceDto);

    void updateTenantInfo(@Param("model") TenantEntity serviceEntity);

    void deleteTenantInfo(@Param("model") TenantDto serviceDto);

    List<TenantEntity> queryTenantInfoList(@Param("model") TenantDto serviceDto);

    int queryTenantInfoCount(@Param("model") TenantDto serviceDto);

    TenantUserEntity queryTenantUserByUserIdAndTenant(@Param("userId") Integer userId, @Param("tenantId") String tenantId);

    void insertTenantUserInfo(@Param("model") TenantUserEntity tenantUserEntity);

    int queryTenantUserInfoCount(@Param("model") TenantUserDTO tenantUserDTO);

    List<TenantUserDTO> queryTenantUserInfo(@Param("model") TenantUserDTO tenantUserDTO);

    void deleteTenantUserInfo(@Param("model") TenantUserEntity tenantUserEntity);

    List<TenantEntity> queryTenantInfoByUserId(@Param("id") Integer userId);

    TenantEntity queryTenantInfoByTenantId(@Param("id") String tenantId);

    void deleteTenantUserPermissionByUserId(@Param("model") TenantUserDTO tenantUserDTO);

    void deleteTenantUserPermissionByTenantId(@Param("model") TenantDto tenantDto);
}
